package com.hzw.saas.api.product;

import com.hzw.saas.api.product.dto.LicenseUserBO;
import com.hzw.saas.api.product.dto.UserProductAuthDto;
import com.hzw.saas.api.product.dto.UserProductInfoDto;
import com.hzw.saas.common.util.enums.AssertEnum;

import java.util.List;

/**
 * @author zzl
 * @since 04/07/2021
 */
public interface ILicenseUserService {

    List<LicenseUserBO> getLicenseUser(String userId, String productId, AssertEnum assertEnum);

    List<UserProductAuthDto> listProducts(String userId, Integer... cloudType);

    List<UserProductInfoDto> listUserProducts(String userId, Integer... cloudType);

    List<LicenseUserBO> searchLicenseUser(LicenseUserBO licenseUserBO);

    boolean updateLicenseUser(String userId, LicenseUserBO licenseUserBO);

    boolean updateLicenseUser(String userId, String licenseId);

    /**
     * @param userId
     * @param licenseUserList 为null不更新
     * @return
     */
    boolean batchUpdateLicenseUser(String userId, List<LicenseUserBO> licenseUserList);

    boolean batchUpdateLicenseUser(String userId, String levelId);

}
